﻿using FreeSql.Internal.Model;
using RS.BaseModel;
using RS.BaseModel.Common;
using TPWorkPlat.DTO.Input;
using TPWorkPlat.DTO.Output;
using TPWorkPlat.Entity;

namespace TPWorkPlat.IService
{
    public interface ITheoryStudyService
    {
        CommonResult<IList<TheoryStudyNewsOutput>> GetHomeList(TheoryStudyHomeInput theoryStudyHomeInput);
        CommonResult<ListDataOutput<T>> GetNewsListAndPageInfo<T>(TheoryStudyGetListAndPageInfoInput theoryStudyGetListAndPageInfoInput);
        CommonResult<TheoryStudyNewsEntity> GetTheoryStudyNewsFromId(BaseAppAndUserInputModel bauim);

        CommonResult<ListDataOutput<T>> GetFillingListAndPageInfo<T>(TheoryStudyGetListAndPageInfoInput theoryStudyGetListAndPageInfoInput);
        CommonResult<TheoryStudyFillingEntity> GetTheoryStudyFillingFromId(BaseAppAndUserInputModel bauim);
        CommonResult<IList<TheoryStudyFillingDateOutput>> GetFillingDateList(TheoryStudyGetDateListInput theoryStudyGetDateListInput);

        CommonResult<ListDataOutput<T>> GetPlanListAndPageInfo<T>(TheoryStudyGetListAndPageInfoInput theoryStudyGetListAndPageInfoInput);
        CommonResult<ListDataOutput<T>> GetPlanDateListAndPageInfo<T>(TheoryStudyGetListAndPageInfoInput theoryStudyGetListAndPageInfoInput);
        CommonResult<TheoryStudyPlanDetailOutput> GetTheoryStudyPlanFromId(BaseAppAndUserInputModel bauim);

        CommonResult<ListDataOutput<T>> GetExpertInfoListAndPageInfo<T>(TheoryStudyGetListAndPageInfoInput theoryStudyGetListAndPageInfoInput);
        CommonResult<ExpertInfoEntity> GetExpertInfoFromId(BaseAppAndUserInputModel bauim);

        CommonResult<ListDataOutput<T>> GetExpertAchievementsListAndPageInfo<T>(TheoryStudyGetListAndPageInfoInput theoryStudyGetListAndPageInfoInput);
        CommonResult<ExpertAchievementsEntity> GetExpertAchievementsFromId(BaseAppAndUserInputModel bauim);
    }
}